bitkeeper revision 1.1236.1.203 (424f103csqM47DQqPr-LyRTrjpJC4g)
authorcl349@firebug.cl.cam.ac.uk[cl349] <cl349@firebug.cl.cam.ac.uk[cl349]>
Sat, 2 Apr 2005 21:35:56 +0000 (21:35 +0000)
committercl349@firebug.cl.cam.ac.uk[cl349] <cl349@firebug.cl.cam.ac.uk[cl349]>
Sat, 2 Apr 2005 21:35:56 +0000 (21:35 +0000)
Merge 2.0-testing change:
  From: YAMAMOTO Takashi <yamt@mwd.biglobe.ne.jp>
  Add support to domain0 builder to load a (Net)BSD symtab for domain0.

Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
xen/arch/x86/domain_build.c

index 5e8c8a509a90eba71c229ecddb18d5db50459f6f..d896df6ad7dcec9f09bb6bbfc6ec929e7a82533a 100644 (file)
@@ -129,6 +129,9 @@ int construct_dom0(struct domain *d,
     if ( rc != 0 )
         return rc;
 
+    if (dsi.load_bsd_symtab)
+        loadelfsymtab(image_start, 0, &dsi);
+
     /* Align load address to 4MB boundary. */
     dsi.v_start &= ~((1UL<<22)-1);
 
@@ -139,7 +142,7 @@ int construct_dom0(struct domain *d,
      * read-only). We have a pair of simultaneous equations in two unknowns, 
      * which we solve by exhaustive search.
      */
-    vinitrd_start    = round_pgup(dsi.v_kernend);
+    vinitrd_start    = round_pgup(dsi.v_end);
     vinitrd_end      = vinitrd_start + initrd_len;
     vphysmap_start   = round_pgup(vinitrd_end);
     vphysmap_end     = vphysmap_start + (nr_pages * sizeof(u32));
@@ -422,6 +425,10 @@ int construct_dom0(struct domain *d,
 
     /* Copy the OS image and free temporary buffer. */
     (void)loadelfimage(image_start);
+
+    if (dsi.load_bsd_symtab)
+        loadelfsymtab(image_start, 1, &dsi);
+
     init_domheap_pages(
         _image_start, (_image_start+image_len+PAGE_SIZE-1) & PAGE_MASK);